# -*- coding: utf-8 -*-
import os
import json


def read_and_print_json(file_path):
    """
    读取指定路径的 JSON 文件，去重其中的 links 列表，
    过滤掉不包含 .html 的链接，并打印结果。

    参数:
        file_path (str): JSON 文件的路径
    """
    try:
        # 检查文件是否存在
        if not os.path.exists(file_path):
            print(f"错误：文件 {file_path} 不存在。")
            return

        # 打开并加载 JSON 文件
        with open(file_path, "r", encoding="utf-8") as file:
            data = json.load(file)

        # 检查数据结构是否符合预期
        if (
            not isinstance(data, dict)
            or "json" not in data
            or not isinstance(data["json"], list)
            or len(data["json"]) == 0
        ):
            print("错误：JSON 数据格式不符合预期。")
            return

        # 提取 links 并去重，同时过滤掉不包含 .html 的链接
        links = [link for link in set(data["json"][0]["links"]) if ".html" in link]

        # 打印 links 类型和内容
        print("去重并过滤后的 Links 类型:", type(links))
        print("去重并过滤后的 Links 内容:")
        for link in links:
            print(link)

    except Exception as e:
        print(f"发生错误: {e}")


if __name__ == "__main__":
    # 获取当前脚本所在目录，并构造 s1.json 的相对路径
    current_dir = os.path.dirname(os.path.abspath(__file__))
    json_file_path = os.path.join(current_dir, "s1.json")

    # 调用函数读取并打印 JSON 数据
    read_and_print_json(json_file_path)
